/**************************************************************************
 *
 * Copyright 2014 MaeckySoft Ltd., Bludenz, Austria.
 * All Rights Reserved.
 *
 **************************************************************************/


#ifndef MGLYPH_H
#define MGLYPH_H

#include <M3DBase.h>

class MGlyph : M3DBase
{
    public:
        MGlyph(int iDebug);
        void setWidth(int iWidth);
        void setHeight(int iHeight);
        int getWidth();
        int getHeight();
        void setWidthPt(long lWidthPt);
        void setHeightPt(long lHeightPt);
        long getWidthPt();
        long getHeightPt();
        void setBearingX(long lBearingX);
        void setBearingY(long lBearingY);
        long getBearingX();
        long getBearingY();
        void setPointSize(int iPointsize);
        void setAdvance(long lAdvance);
        long getPointSize();
        long getAdvance();
        void setCharacter(char cCharacter);
        char getCharacter();
		void printMethodInfo(std::string method);
        void setBuffer(unsigned char *sBuffer);
        int renderRGBA();
        int renderRGB();
        unsigned char *getBuffer();
        unsigned char *getImageRGBA();
        unsigned long getImageRGBASize();
        unsigned long getImageRGBSize();
        unsigned char *getImageRGB();
        virtual ~MGlyph();

    protected:
    private:
        char m_cCharacter;
        int m_iWidth;
        int m_iHeight;
        int m_iPointsize;
        long m_lWidthPt;
        long m_lHeightPt;
        long m_lBearingX;
        long m_lBearingY;
        long m_lAdvance;

        unsigned char *m_sBuffer;
        unsigned char *m_sImageRGB;
        unsigned long m_lImageRGBSize;
        unsigned char *m_sImageRGBA;
        unsigned long m_lImageRGBASize;

};

#endif // MGLYPH_H
